package cn.com.idmy.auth.oauth;

public class OauthJwtUtil {
    public static String buildRedirectUri(String redirectUri, String code) {
        return joinParam(redirectUri, OauthConsts.CODE + "=" + code);
    }

    public static String joinParam(String url, String param) {
        // 如果参数为空, 直接返回
        if (param == null || param.isEmpty()) {
            return url;
        }
        if (url == null) {
            url = "";
        }
        int index = url.lastIndexOf('?');
        // ? 不存在
        if (index == -1) {
            return url + '?' + param;
        }
        // ? 是最后一位
        if (index == url.length() - 1) {
            return url + param;
        }
        // ? 是其中一位
        if (index < url.length() - 1) {
            String separatorChar = "&";
            // 如果最后一位是 不是&, 且 paramStr 第一位不是 &, 就赠送一个 &
            if (url.lastIndexOf(separatorChar) != url.length() - 1 && param.indexOf(separatorChar) != 0) {
                return url + separatorChar + param;
            } else {
                return url + param;
            }
        }
        // 正常情况下, 代码不可能执行到此
        return url;
    }
}
